Previous topic

页面布局

Next topic

使用布局生成器

This Page

用模板生成电子邮件

有时候会需要利用模板生成电子邮件。比如说,如果有类似下面的数据库表:

db.define_table('person',Field('name'))

当你相对这个表里面的每一个用户都发一个邮件,邮件内容记录在一个名叫“message.html”的文件中:

Dear{{=person.name}},
Youhavewonthesecondprize,asetofsteakknives.

你可以利用下面这段代码达到以上的目的:

>>>fromgluon.toolimportMail
>>>mail=Mail(globals())
>>>mail.settings.server='smtp.gmail.com:587'
>>>mail.settings.sender='...@somewhere.com'
>>>mail.settings.login=Noneor'username:password'
>>>for person in db(db.person.id>0).select():
>>>     context = dict(person=person)
>>>     message = response.renaer('message.html', context)
>>>     mail.send(to=['who@example.com'],
>>>         subject='None',
>>>         message=message)

以上这段代码中,大部分的工作是在下面这个语句中完成的:

response.render('message.html',context)

这个函数会根据在context中设定的条件将“file.html”进行渲染,然后将渲染完成的字符串返回。至于context,它是一个字典,里面存的是可以供模板访问的变量。

同样的原理也可以用来发送短信或者其他给予模板的信息。